import tkinter as tk
from tkinter import ttk

class BasePage:
    """所有页面的基类"""
    def __init__(self, parent, controller):
        self.controller = controller
        self.frame = ttk.Frame(parent)
        self.setup_styles()
        
    def setup_styles(self):
        """
        设置通用样式，设置默认的TK主题，影响组件中style的行为。
        """
        self.style = ttk.Style()
        # 设置主题为clam（支持更多自定义样式）
        if "clam" in self.style.theme_names():
            self.style.theme_use("alt")
        # 打印当前主题
        print(f"当前主题: {self.style.theme_use()}")
        # 定义淡蓝色系
        LIGHT_BLUE = "#0099ff"      # 基础淡蓝色
        LIGHT_BLUE_HOVER = "#90CAF9"  # 悬停时的淡蓝色
        LIGHT_BLUE_PRESSED = "#64B5F6"  # 按下时的淡蓝色
        
        # 配置Info.TButton样式
        self.style.configure(
            "Info.TButton",
            background=LIGHT_BLUE,
            foreground="black",  # 文字颜色
            borderwidth=1,       # 边框宽度
            relief=tk.RAISED,    # 边框样式
            padding=8,           # 内边距
            font=("微软雅黑", 10)  # 字体设置
        )
        
        # 设置按钮在不同状态下的颜色
        self.style.map(
            "Info.TButton",
            background=[
                ('disabled', '#cccccc'),  # 禁用状态
                ('pressed', LIGHT_BLUE_PRESSED),  # 按下状态
                ('active', LIGHT_BLUE_HOVER),    # 悬停状态
                ('!active', LIGHT_BLUE)          # 正常状态
            ],
            relief=[
                ('pressed', tk.SUNKEN),   # 按下时凹陷效果
                ('!pressed', tk.RAISED)   # 正常时凸起效果
            ]
        )